﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Windows.Forms;
using ComunesMGI.DataTypes;
using ClienteWinMGI.Reportes;

namespace ClienteWinMGI.Presentacion
{
    public partial class FormReportes : Form
    {
        public FormReportes()
        {
            InitializeComponent();
        }

        public FormReportes(List<DataIncidenteReporte> dir, DateTime fechaDesde, DateTime fechaHasta)
        {
            InitializeComponent();
            //SetDataSourceReporte(dir, fechaDesde, fechaHasta);
        }

        public void SetReporteCerradosPeriodos() 
        {
            this.crystalReportViewer1.ReportSource = new ClienteWinMGI.Reportes.ReporteIncidentesCerradosPeriodo();
        }

        public void SetReporteAsignadosPeriodos()
        {
            this.crystalReportViewer1.ReportSource = new ClienteWinMGI.Reportes.ReporteIncidentesAsignadosPeriodo();
        }

        public void SetReporteCreadosPeriodos()
        {
            this.crystalReportViewer1.ReportSource = new ClienteWinMGI.Reportes.ReporteIncidentesCreadosPeriodo();
        }

        public void SetDataSourceReporte(List<DataIncidenteReporte> ldir, DateTime fechaDesde, DateTime fechaHasta)
        {
            DataSetIncidentes ds = new DataSetIncidentes();
            foreach (DataIncidenteReporte dir in ldir) 
            {
                ds.DataIncidente.AddDataIncidenteRow(dir.IdIncidente, dir.Titulo, dir.Descripcion, dir.Responsable, dir.Url, dir.Sistema, fechaDesde, fechaHasta, dir.FechaPropuesto, dir.FechaCierre);
            }
            ((ClienteWinMGI.Reportes.ReporteIncidentesCerradosPeriodo)this.crystalReportViewer1.ReportSource).SetDataSource(ds);
        }

        public void SetDataSourceReporteIncidentesAsignados(List<DataIncidenteReporte> ldir, DateTime fechaDesde, DateTime fechaHasta)
        {
            DataSetIncidentesAsignados ds = new DataSetIncidentesAsignados();
            foreach (DataIncidenteReporte dir in ldir)
            {
                ds.DataIncidenteAsignado.AddDataIncidenteAsignadoRow(dir.IdIncidente, dir.Titulo, dir.Descripcion, dir.Responsable, dir.Url, dir.Sistema, fechaDesde, fechaHasta, dir.FechaPropuesto, dir.FechaCierre,dir.Estado,dir.Url);
            }
            ((ClienteWinMGI.Reportes.ReporteIncidentesAsignadosPeriodo)this.crystalReportViewer1.ReportSource).SetDataSource(ds);
        }

        public void SetDataSourceReporteIncidentesCreados(List<DataIncidenteReporte> ldir, DateTime fechaDesde, DateTime fechaHasta)
        {
            DataSetIncidentesCreados ds = new DataSetIncidentesCreados();
            foreach (DataIncidenteReporte dir in ldir)
            {
                ds.DataIncidenteCreado.AddDataIncidenteCreadoRow(dir.IdIncidente, dir.Titulo, dir.Descripcion, dir.Responsable, dir.Url, dir.Sistema, fechaDesde, fechaHasta, dir.FechaPropuesto, dir.FechaCierre);
            }
            ((ClienteWinMGI.Reportes.ReporteIncidentesCreadosPeriodo)this.crystalReportViewer1.ReportSource).SetDataSource(ds);
        }
    }
}
